import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class QqEncryption {

	
	 public static String Encrypt(String pwd, String verifyCode)
	    {
	        return (md5(md5_3(pwd).toUpperCase() + verifyCode.toUpperCase())).toUpperCase();
	    }
	  
	 
	 private static String md5_3(String str){
		 
		 MessageDigest messageDigest = null; 
		 
	        try { 
	            messageDigest = MessageDigest.getInstance("MD5"); 
	 
	            messageDigest.reset(); 
	 
	            messageDigest.update(str.getBytes("UTF-8")); 
	        } catch (NoSuchAlgorithmException e) { 
	            System.out.println("NoSuchAlgorithmException caught!"); 
	            System.exit(-1); 
	        } catch (UnsupportedEncodingException e) { 
	            e.printStackTrace(); 
	        } 
	 
	        byte[] byteArray = messageDigest.digest(); 
	        messageDigest.update(byteArray);
	               byteArray = messageDigest.digest(); 
	        messageDigest.update(byteArray);
	               byteArray = messageDigest.digest(); 
	       
	 
	        StringBuffer md5StrBuff = new StringBuffer(); 
	 
	        for (int i = 0; i < byteArray.length; i++) {             
	            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) 
	                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); 
	            else 
	                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); 
	        } 
	 
	        return md5StrBuff.toString(); 
	 }
	    private static String md5(String str) { 
	        MessageDigest messageDigest = null; 
	 
	        try { 
	            messageDigest = MessageDigest.getInstance("MD5"); 
	 
	            messageDigest.reset(); 
	 
	            messageDigest.update(str.getBytes("UTF-8")); 
	        } catch (NoSuchAlgorithmException e) { 
	            System.out.println("NoSuchAlgorithmException caught!"); 
	            System.exit(-1); 
	        } catch (UnsupportedEncodingException e) { 
	            e.printStackTrace(); 
	        } 
	 
	        byte[] byteArray = messageDigest.digest(); 
	       
	 
	        StringBuffer md5StrBuff = new StringBuffer(); 
	 
	        for (int i = 0; i < byteArray.length; i++) {             
	            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) 
	                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); 
	            else 
	                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); 
	        } 
	 
	        return md5StrBuff.toString(); 
	    }
	 
	public static void main(String[] args){
		System.out.println(Encrypt("TestMima","APIV"));
		System.out.println( md5("hellohihowareyou") );
		
	}
}
